const ProjectRequest = require("../project/project_request.js");
const Login = require("../utils/privacy_login.js");
const Config = require("../project/project_config.js");
const Tool = require("../utils/tool.js");

/**
 * 登录
 * 
 * @使用
 *  方式1：login(_success)
 *  方式2：login(_toUrl, _success)
 * 
 * @_success(res.data, infoRes.userInfo)
 */
function login(_toUrl, _success) {
  // 处理参数
  if(arguments.length==1){
    _success = _toUrl
    _toUrl = null;
  }
  // 微信登录
  Login
    .login(
      Config.Hostname, 
      Config.Port,
      "/wx/login",
      null, 
      (res) => { 
        return res.data.data.state == "OK" ? { flag: true, skey: res.data.data.skey } : { flag: false, skey: res.data.data.skey };
      }
    ).then(([res, infoRes]) => {
      if (null !== _toUrl) {
        wx.navigateTo({ url: _toUrl })
      } else {
        _success(res.data, infoRes.userInfo);
      }
    }).catch(res => {
      Tool.hideLoading();
      Tool.showInfo(res.data.data.message);
    });
}

/**
 * 登录
 * 
 * @使用：isLogin(_success, _fail)
 * 
 * @_success(res)
 * @_fail(res)
 */
function isLogin(_success, _fail) {
  // 微信登录
  Login
    .isLogin(
      Config.Hostname,
      Config.Port,
      ProjectRequest.warpPath("/wx/islogin"),
      (res) => { return  res.data.data.state == "OK" ? true : false; }
    )
    .then(function([res, isLoginFlag]){
      isLoginFlag ? _success(res) : _fail(res);
    });
}

/**
 * 测试登录
 */
function testLogin(name, password, callback) {
  const url = "/login/login/login";
  ProjectRequest.postRequest(url, { name, password }, callback);
}

/**
 * exports
 */
module.exports = {
  login: login,
  isLogin: isLogin,
  testLogin
};